import org.apache.spark.sql.SparkSession

object HouseDataAnalysis {
  def main(args: Array[String]): Unit = {
    // 创建 SparkSession
    val spark = SparkSession.builder()
      .appName("HouseDataAnalysis")
      .master("local[*]")  // 使用本地模式，[*] 表示使用所有可用的核心
      .getOrCreate()

    // 读取 CSV 文件
    val df = spark.read
      .option("header", true)  // 表示第一行是列名
      .csv("hdfs://192.168.2.99:9000/sh_data.csv") // 读取数据

    // 分析房屋总价的统计信息
    println("房屋总价的统计信息：")
    val totalDF = df.select("total_price").describe()
    totalDF.show()

    // 定义装修情况变量，并去除null值
    println("装修情况的分布情况：")
    val decorationDF = df.select("decoration").na.drop("any").groupBy("decoration").count()
    decorationDF.show()

    // 分析是否有电梯的房屋数量,并去除null值
    println("是否有电梯的房屋数量统计：")
    val elevatorDF = df.select("elevator").na.drop("any").groupBy("elevator").count()
    elevatorDF.show()

    // 显示不同地区有多少个房屋的数据
    println("不同地区房屋数量统计：")
    val districtDF = df.select("district").na.drop("any").groupBy("district").count()
    districtDF.show()

    // 停止 SparkSession
    spark.stop()
  }
}